package com.zw.a.basic.a14.demo07_tcp_exercise;

//案例:  客户端：数据来自于键盘录入, 直到输入的数据是886，发送数据结束

import java.io.*;
import java.net.Socket;

//自定义的TCP协议的客户端.
public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //1. 创建客户端Socket对象.
        Socket socket = new Socket("127.0.0.1", 10010);

        //2. 自定义封装键盘录入, 接收用户录入的数据.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //Scanner sc = new Scanner(System.in);

        //3. 获取输出流, 可以往服务器端写数据.
        /*OutputStream os = socket.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));*/
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

        //4. 定义变量line, 用来接收用户录入的数据.
        String line;
        //5. 循环接收, 只要不为null, 就一直接收.
        while ((line = br.readLine()) != null) {
            //6. 判断用户录入的是否是"886", 如果是, 客户端发送结束.
            if ("886".equals(line))
                break;

            //7. 如果不是, 就将用户录入的数据发送给服务器端.
            bw.write(line);
            bw.newLine();       //记得要换行
            bw.flush();         //把数据从缓冲区中刷新出来.
        }


        //8. 关闭客户端Socket对象, 释放资源.
        socket.close();
    }
}
